
/// MLSDEFORMER source code
/// by Alvaro Cuno, LCG-COPPE-UFRJ 
/// bugs? email-me: alvaroecp@gmail.com
/// January, 2007

#ifndef __WEIGHTS_SCHEME_H__
#define __WEIGHTS_SCHEME_H__
   
#include "../core/tconstraints.h"
#include "mesh.h"
#include "gskeleton.h"
   
/// Computes the weight table using a path-based metric over the mesh
/// @param model the mesh model 
/// @param constraints the constraints
/// @return a pointer to the weights table
Number* compute_WeightsTable(Mesh *model, const TConstraints<Point3> *);

/// Computes the weight table using a metric over the mesh.
/// The constraints are interpreted as trihedron constraints.
/// A trihedron is composed of one quadruple of constraints
/// @param model the shape with skeleton 
/// @param constraints the constraints
/// @return a pointer to the weights table
Number* compute_WeightsTable_Trihedrons(Mesh *model, const TConstraints<Point3> *);

Number* compute_WeightsTable(Mesh *m, GSkeleton *s, const TConstraints<Point3> *c);

//~ Number* compute_WeightsTable(Mesh *m, USkeleton *s, const Constraints *c);

#endif
